Давайте усложним пример. Сделаем вот что. Нам нужно будет получить вот такое приложение:

Думаю Вам будет интересно как это сделать. Делаем новое приложение MFC AppWizard. С именем TestE. Пусть приложение будет SDI. Я вам раньше советовал сохранить класс в галерею компонентов. Сейчас просто нужно класс вставить.

О том как разделяется окно на два фрейма со своими видами мы уже говорили: "Шаг 24 - Несколько видов для документа". Заводим класс разделителя:
......
class CMainFrame : public CFrameWnd
{
protected: // create from serialization only
CMainFrame();
DECLARE_DYNCREATE(CMainFrame)
// Attributes
public:
CSplitterWnd m_wndSplitter;
// Operations
public:
......
};
И организуем разделитель, перегрузив функцию OnCreateClient():
BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
{
// TODO: Add your specialized code here and/or call the base class
if (!m_wndSplitter.CreateStatic(this, 1, 2)) return FALSE;
if (!m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CTabView),
CSize(100, 100), pContext) ||
!m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CTestEView),
CSize(100, 100), pContext))
{
m_wndSplitter.DestroyWindow();
return FALSE;
}
return TRUE;
}
Только нужно определить заголовочные файлы:
// MainFrm.cpp : implementation of the CMainFrame class // #include "stdafx.h" #include "TestE.h" #include "TestEDoc.h" #include "TabView.h" #include "TestEView.h" #include "MainFrm.h" #ifdef _DEBUG
Если сейчас запустить приложение, то вид у него будет такой:

А нам надо на все окно. Это решается легко. Там нужно перегрузить метод OnSize() нашего класса:
void CTabView::OnSize(UINT nType, int cx, int cy)
{
CView::OnSize(nType, cx, cy);
if (IsWindow(cTab)) cTab.MoveWindow(0,0,cx,cy);
}
С этого момента все станет нормально как на первой картинке.